/*
 * Syntelos 'SX'
 * Copyright (C) 1998, 2007  John Pritchard.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of the
 * License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 * 02110-1301 USA.
 */
package syntelos.sx.methods;

import alto.io.Output;
import alto.lang.Type;
import alto.sys.FileManager;
import alto.sys.Reference;

/**
 * Return a list of location urls for a host name, and a request line
 * path and query parameter named "type".  The request line query
 * parameter named "type" has a file name extension value, for example
 * "java" or "html" or "txt".  Note that multiple comma separated
 * values are accepted in the value of "type".
 * 
 * A query parameter named "recurse" may have a value "true" for the
 * default behavior listing the target directory and all
 * subdirectories within a type.
 * 
 * @since 1.6
 */
public class List
    extends syntelos.sx.Response
{


    public List(){
        super();
    }


    public void respond(syntelos.sx.Request req)
        throws java.io.IOException,
               java.lang.InterruptedException
    {
        Reference[] list = req.list();
        if (null != list){
            Output buf = this.getCreateBuffer().openOutput();
            for (int cc = 0, count = list.length; cc < count; cc++){
                buf.println(list[cc].toString());
            }
            this.setContentTypeText();
        }
        else {
            this.setStatusNotFound();
        }
    }

}
